home *** CD-ROM | disk | FTP | other *** search
-
-
-
- IIIINNNNTTTTRRRROOOO((((3333TTTT)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll IIIINNNNTTTTRRRROOOO((((3333TTTT))))
-
-
-
- NNNNAAAAMMMMEEEE
- libtiff - introduction to _l_i_b_t_i_f_f, a library for reading and writing TIFF
- files
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ttttiiiiffffffffiiiioooo....hhhh>>>>
- cc file.c ----llllttttiiiiffffffff
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _l_i_b_t_i_f_f is a library for reading and writing data files encoded with the
- _T_a_g _I_m_a_g_e _F_i_l_e format, Revision 6.0 (or revision 5.0 or revision 4.0).
- This file format is suitable for archiving multi-color and monochromatic
- image data.
-
- The library supports several compression algorithms, as indicated by the
- _C_o_m_p_r_e_s_s_i_o_n field, including: no compression (1), CCITT 1D Huffman
- compression (2), CCITT Group 3 Facsimile compression (3), CCITT Group 4
- Facsimile compression (4), Lempel-Ziv & Welch compression (5), baseline
- JPEG compression (7), word-aligned 1D Huffman compression (32771), and
- PackBits compression (32773). In addition, several nonstandard
- compression algorithms are supported: the 4-bit compression algorithm
- used by the _T_h_u_n_d_e_r_S_c_a_n program (32809) (decompression only), NeXT's 2-
- bit compression algorithm (32766) (decompression only), and an
- experimental LZ-style algorithm known as Deflate (32946). Directory
- information may be in either little- or big-endian byte order-byte
- swapping is automatically done by the library. Data bit ordering may be
- either Most Significant Bit (MSB) to Least Significant Bit (LSB) or LSB
- to MSB. Finally, the library does not support files in which the
- _B_i_t_s_P_e_r_S_a_m_p_l_e, _C_o_m_p_r_e_s_s_i_o_n, _M_i_n_S_a_m_p_l_e_V_a_l_u_e, or _M_a_x_S_a_m_p_l_e_V_a_l_u_e fields are
- defined differently on a per-sample basis (in Rev. 6.0 the _C_o_m_p_r_e_s_s_i_o_n
- tag is not defined on a per-sample basis, so this is immaterial).
-
- DDDDAAAATTTTAAAA TTTTYYYYPPPPEEEESSSS
- The library makes extensive use of C typedefs to promote portability.
- Two sets of typedefs are used, one for communication with clients of the
- library and one for internal data structures and parsing of the TIFF
- format. The following typedefs are exposed to users either through
- function definitions or through parameters passed through the varargs
- interfaces.
- typedef unsigned short uint16; 16-bit unsigned integer
- typedef unsigned <_t_h_i_n_g> uint32; 32-bit unsigned integer
- typedef unsigned int ttag_t; directory tag
- typedef uint16 tdir_t; directory index
- typedef uint16 tsample_t; sample number
- typedef uint32 tstrip_t; strip number
- typedef uint32 ttile_t; tile number
- typedef int32 tsize_t; i/o size in bytes
- typedef void* tdata_t; image data ref
- typedef void* thandle_t; client data handle
- typedef int32 toff_t; file offset
- Note that _t_s_t_r_i_p__t, _t_t_i_l_e__t, and _t_s_i_z_e__t are constrained to be no more
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- IIIINNNNTTTTRRRROOOO((((3333TTTT)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll IIIINNNNTTTTRRRROOOO((((3333TTTT))))
-
-
-
- than 32-bit quantities by 32-bit fields they are stored in in the TIFF
- image. Likewise _t_s_a_m_p_l_e__t is limited by the 16-bit field used to store
- the _S_a_m_p_l_e_s_P_e_r_P_i_x_e_l tag. _t_d_i_r__t constrains the maximum number of IFDs
- that may appear in an image and may be an arbitrary size (w/o penalty).
- _t_t_a_g__t must be either int, unsigned int, pointer, or double because the
- library uses a varargs interface and ANSI C restricts the type of the
- parameter before an ellipsis to be a promoted type. _t_o_f_f__t is defined as
- int32 because TIFF file offsets are (unsigned) 32-bit quantities. A
- signed value is used because some interfaces return -1 on error.
- Finally, note that user-specified data references are passed as opaque
- handles and only cast at the lowest layers where their type is presumed.
-
- LLLLIIIISSSSTTTT OOOOFFFF RRRROOOOUUUUTTTTIIIINNNNEEEESSSS
- The following routines are part of the library. Consult specific manual
- pages for details on their operation. The manual page names listed below
- are for systems where the full function names can not be encoded in the
- filesystem; on most systems doing ``man function-name'' will work.
- _N_a_m_e _A_p_p_e_a_r_s _o_n _P_a_g_e _D_e_s_c_r_i_p_t_i_o_n
- TIFFCheckTile tile.3t very x,y,z,sample is within image
- TIFFClientOpen open.3t open a file for reading or writing
- TIFFClose close.3t close an open file
- TIFFComputeStrip strip.3t return strip containing y,sample
- TIFFComputeTile tile.3t return tile containing x,y,z,sample
- TIFFCurrentDirectory query.3t return index of current directory
- TIFFCurrentRow query.3t return index of current scanline
- TIFFCurrentStrip query.3t return index of current strip
- TIFFCurrentTile query.3t return index of current tile
- TIFFError error.3t library error handler
- TIFFFdOpen open.3t open a file for reading or writing
- TIFFFileName query.3t return name of open file
- TIFFFileno query.3t return open file descriptor
- TIFFFlush flush.3t flush all pending writes
- TIFFFlushData flush.3t flush pending data writes
- TIFFGetBitRevTable swab.3t return bit reversal table
- TIFFGetField getfield.3t return tag value in current directory
- TIFFGetFieldDefaulted getfield.3t return tag value in current directory
- TIFFGetMode query.3t return open file mode
- TIFFGetVersion query.3t return library version string
- TIFFIsTiled query.3t return true if image data is tiled
- TIFFIsByteSwapped query.3t return true if image data is byte-swapped
- TIFFNumberOfStrips strip.3t return number of strips in an image
- TIFFNumberOfTiles tile.3t return number of tiles in an image
- TIFFOpen open.3t open a file for reading or writing
- TIFFPrintDirectory print.3t print description of the current directory
- TIFFReadBufferSetup rdbuf.3t specify i/o buffer for reading
- TIFFReadDirectory readdir.3t read the next directory
- TIFFReadEncodedStrip rdestrip.3t read and decode a strip of data
- TIFFReadEncodedTile rdetile.3t read and decode a tile of data
- TIFFReadRawStrip rdrstrip.3t read a raw strip of data
- TIFFReadRawTile rdrtile.3t read a raw tile of data
- TIFFReadRGBAImage rdimage.3t read an image into a fixed format raster
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- IIIINNNNTTTTRRRROOOO((((3333TTTT)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll IIIINNNNTTTTRRRROOOO((((3333TTTT))))
-
-
-
- TIFFReadScanline readline.3t read and decode a row of data
- TIFFReadTile readtile.3t read and decode a tile of data
- TIFFReverseBits swab.3t reverse bits in an array of bytes
- TIFFRGBAImageBegin rgbaimage.3t setup decoder state for TIFFRGBAImageGet
- TIFFRGBAImageEnd rgbaimage.3t release TIFFRGBAImage decoder state
- TIFFRGBAImageGet rgbaimage.3t read and decode an image
- TIFFRGBAImageOK rgbaimage.3t is image readable by TIFFRGBAImageGet
- TIFFScanlineSize size.3t return size of a scanline
- TIFFSetDirectory setdir.3t set the current directory
- TIFFSetSubDirectory setdir.3t set the current directory
- TIFFSetErrorHandler error.3t set error handler function
- TIFFSetField setfield.3t set a tag's value in the current directory
- TIFFSetWarningHandler error.3t set warning handler function
- TIFFStripSize size.3t return size of a strip
- TIFFSwabShort swab.3t swap bytes of short
- TIFFSwabLong swab.3t swap bytes of long
- TIFFSwabArrayOfShort swab.3t swap bytes of an array of shorts
- TIFFSwabArrayOfLong swab.3t swap bytes of an array of longs
- TIFFTileRowSize size.3t return size of a row in a tile
- TIFFTileSize size.3t return size of a tile
- TIFFVGetField getfield.3t return tag value in current directory
- TIFFVGetFieldDefaulted getfield.3t return tag value in current directory
- TIFFVSetField setfield.3t set a tag's value in the current directory
- TIFFWarning warning.3t library warning handler
- TIFFWriteDirectory writedir.3t write the current directory
- TIFFWriteEncodedStrip wrestrip.3t compress and write a strip of data
- TIFFWriteEncodedTile wretile.3t compress and write a tile of data
- TIFFWriteRawStrip wrrstrip.3t write a raw strip of data
- TIFFWriteRawTile wrrtile.3t write a raw tile of data
- TIFFWriteScanline writeline.3t write a scanline of data
- TIFFWriteTile wrrtile.3t compress and write a tile of data
-
- TTTTAAAAGGGG UUUUSSSSAAAAGGGGEEEE
- The table below lists the TIFF tags that are recognized and handled by
- the library. If no use is indicated in the table, then the library reads
- and writes the tag, but does not use it internally. Note that some tags
- are meaningful only when a particular compression scheme is being used;
- e.g. _G_r_o_u_p_3_O_p_t_i_o_n_s is only useful if _C_o_m_p_r_e_s_s_i_o_n is set to CCITT Group 3
- encoding. Tags of this sort are considered _c_o_d_e_c-_s_p_e_c_i_f_i_c tags and the
- library does not recognize them except when the _C_o_m_p_r_e_s_s_i_o_n tag has been
- previously set to the relevant compression scheme.
- _T_a_g _N_a_m_e _V_a_l_u_e _R/_W _L_i_b_r_a_r_y _U_s_e/_N_o_t_e_s
- Artist 315 R/W
- BadFaxLines 326 R/W
- BitsPerSample 258 R/W lots
- CellLength 265 parsed but ignored
- CellWidth 264 parsed but ignored
- CleanFaxData 327 R/W
- ColorMap 320 R/W
- ColorResponseUnit 300 parsed but ignored
- Compression 259 R/W choosing codec
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- IIIINNNNTTTTRRRROOOO((((3333TTTT)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll IIIINNNNTTTTRRRROOOO((((3333TTTT))))
-
-
-
- ConsecutiveBadFaxLines 328 R/W
- DataType 32996 R obsoleted by SampleFormat tag
- DateTime 306 R/W
- DocumentName 269 R/W
- DotRange 336 R/W
- ExtraSamples 338 R/W lots
- FaxRecvParams 34908 R/W
- FaxSubAddress 34909 R/W
- FaxRecvTime 34910 R/W
- FillOrder 266 R/W control bit order
- FreeByteCounts 289 parsed but ignored
- FreeOffsets 288 parsed but ignored
- GrayResponseCurve 291 parsed but ignored
- GrayResponseUnit 290 parsed but ignored
- Group3Options 292 R/W used by Group 3 codec
- Group4Options 293 R/W
- HostComputer 316 R/W
- ImageDepth 32997 R/W tile/strip calculations
- ImageDescription 270 R/W
- ImageLength 257 R/W lots
- ImageWidth 256 R/W lots
- InkNames 333 R/W
- InkSet 332 R/W
- JPEGTables 347 R/W used by JPEG codec
- Make 271 R/W
- Matteing 32995 R obsoleted by ExtraSamples tag
- MaxSampleValue 281 R/W
- MinSampleValue 280 R/W
- Model 272 R/W
- NewSubFileType 254 R/W called SubFileType in spec
- NumberOfInks 334 R/W
- Orientation 274 R/W
- PageName 285 R/W
- PageNumber 297 R/W
- PhotometricInterpretation 262 R/Wused by Group 3 and JPEG codecs
- PlanarConfiguration 284 R/W data i/o
- Predictor 317 R/W used by LZW and Deflate codecs
- PrimaryChromacities 319 R/W
- ReferenceBlackWhite 532 R/W
- ResolutionUnit 296 R/W used by Group 3 codec
- RowsPerStrip 278 R/W data i/o
- SampleFormat 339 R/W
- SamplesPerPixel 277 R/W lots
- SMinSampleValue 340 R/W
- SMaxSampleValue 341 R/W
- Software 305 R/W
- StripByteCounts 279 R/W data i/o
- StripOffsets 273 R/W data i/o
- SubFileType 255 R/W called OSubFileType in spec
- TargetPrinter 337 R/W
- Thresholding 263 R/W
- TileByteCounts 324 R/W data i/o
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- IIIINNNNTTTTRRRROOOO((((3333TTTT)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll IIIINNNNTTTTRRRROOOO((((3333TTTT))))
-
-
-
- TileDepth 32998 R/W tile/strip calculations
- TileLength 323 R/W data i/o
- TileOffsets 324 R/W data i/o
- TileWidth 322 R/W data i/o
- TransferFunction 301 R/W
- WhitePoint 318 R/W
- XPosition 286 R/W
- XResolution 282 R/W
- YCbCrCoefficients 529 R/W used by TIFFRGBAImage support
- YCbCrPositioning 531 R/W tile/strip size calulcations
- YCbCrSubsampling 530 R/W
- YPosition 286 R/W
- YResolution 283 R/W used by Group 3 codec
-
- PPPPSSSSEEEEUUUUDDDDOOOO TTTTAAAAGGGGSSSS
- In addition to the normal TIFF tags the library supports a collection of
- tags whose values lie in a range outside the valid range of TIFF tags.
- These tags are termed _p_s_e_u_d-_t_a_g_s and are used to control various codec-
- specific functions within the library. The table below summarizes the
- defined pseudo-tags.
- _T_a_g _N_a_m_e _C_o_d_e_c _R/_W _L_i_b_r_a_r_y _U_s_e/_N_o_t_e_s
- TIFFTAG_FAXMODE G3 R/W general codec operation
- TIFFTAG_FAXFILLFUNC G3/G4 R/W bitmap fill function
- TIFFTAG_JPEGQUALITY JPEG R/W compression quality control
- TIFFTAG_JPEGCOLORMODE JPEG R/W control colorspace conversions
- TIFFTAG_JPEGTABLESMODE JPEG R/W control contents of _J_P_E_G_T_a_b_l_e_s tag
-
- TTTTIIIIFFFFFFFFTTTTAAAAGGGG____FFFFAAAAXXXXMMMMOOOODDDDEEEE
- Control the operation of the Group 3 codec. Possible values
- (independent bits that can be combined by or'ing them together) are:
- FAXMODE_CLASSIC (enable old-style format in which the RTC is written
- at the end of the last strip), FAXMODE_NORTC (opposite of
- FAXMODE_CLASSIC; also called FAXMODE_CLASSF), FAXMODE_NOEOL (do not
- write EOL codes at the start of each row of data), FAXMODE_BYTEALIGN
- (align each encoded row to an 8-bit boundary), FAXMODE_WORDALIGN
- (align each encoded row to an 16-bit boundary), The default value is
- dependent on the compression scheme; this pseudo-tag is used by the
- various G3 and G4 codecs to share code.
-
- TTTTIIIIFFFFFFFFTTTTAAAAGGGG____FFFFAAAAXXXXFFFFIIIILLLLLLLLFFFFUUUUNNNNCCCC
- Control the function used to convert arrays of black and white runs
- to packed bit arrays. This hook can be used to image decoded
- scanlines in multi-bit depth rasters (e.g. for display in colormap
- mode) or for other purposes. The default value is a pointer to a
- builtin function that images packed bilevel data.
-
- TTTTIIIIFFFFFFFFTTTTAAAAGGGG____JJJJPPPPEEEEGGGGQQQQUUUUAAAALLLLIIIITTTTYYYY
- Control the compression quality level used in the baseline
- algorithm. Note that quality levels are in the range 0-100 with a
- default value of 75.
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-
-
-
- IIIINNNNTTTTRRRROOOO((((3333TTTT)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll IIIINNNNTTTTRRRROOOO((((3333TTTT))))
-
-
-
- TTTTIIIIFFFFFFFFTTTTAAAAGGGG____JJJJPPPPEEEEGGGGCCCCOOOOLLLLOOOORRRRMMMMOOOODDDDEEEE
- Control whether or not conversion is done between RGB and YCbCr
- colorspaces. Possible values are: JPEGCOLORMODE_RAW (do not
- convert), and JPEGCOLORMODE_RGB (convert to/from RGB) The default
- value is JPEGCOLORMODE_RAW.
-
- TTTTIIIIFFFFFFFFTTTTAAAAGGGG____JJJJPPPPEEEEGGGGTTTTAAAABBBBLLLLEEEESSSSMMMMOOOODDDDEEEE
- Control the information written in the _J_P_E_G_T_a_b_l_e_s tag. Possible
- values (independent bits that can be combined by or'ing them
- together) are: JPEGTABLESMODE_QUANT (include quantization tables),
- and JPEGTABLESMODE_HUFF (include Huffman encoding tables). The
- default value is JPEGTABLESMODE_QUANT|JPEGTABLESMODE_HUFF.
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- All error messages are directed through the _T_I_F_F_E_r_r_o_r routine. By
- default messages are directed to ssssttttddddeeeerrrrrrrr in the form: _m_o_d_u_l_e: _m_e_s_s_a_g_e\_n.
- Warning messages are likewise directed through the _T_I_F_F_W_a_r_n_i_n_g routine.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- _f_a_x_2_t_i_f_f(1), _g_i_f_2_t_i_f_f(1), _p_a_l_2_r_g_b(1), _p_p_m_2_t_i_f_f(1), _r_g_b_2_y_c_b_c_r(1),
- _r_a_s_2_t_i_f_f(1), _s_g_i_2_t_i_f_f(1), _t_i_f_f_2_b_w(1), _t_i_f_f_d_i_t_h_e_r(1), _t_i_f_f_d_u_m_p(1),
- _t_i_f_f_c_p(1), _t_i_f_f_c_m_p(1), _t_i_f_f_g_t(1), _t_i_f_f_i_n_f_o(1), _t_i_f_f_m_e_d_i_a_n(1),
- _t_i_f_f_s_p_l_i_t(1), _t_i_f_f_s_v(1),
-
- _T_a_g _I_m_a_g_e _F_i_l_e _F_o_r_m_a_t _S_p_e_c_i_f_i_c_a_t_i_o_n - _R_e_v_i_s_i_o_n _6._0, an Aldus Technical
- Memorandum.
-
- _T_h_e _S_p_i_r_i_t _o_f _T_I_F_F _C_l_a_s_s _F, an appendix to the TIFF 5.0 specification
- prepared by Cygnet Technologies.
-
- BBBBUUUUGGGGSSSS
- The library does not support multi-sample images where some samples have
- different bits/sample.
-
- The library does not support random access to compressed data that is
- organized with more than one row per tile or strip. The library discards
- unknown tags. The library should do more validity checking of a
- directory's contents.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 6666
-
-
-
-